# 魔法方法 特性 迭代器

# 1构造函数
class Foo:
    def __init__(self):
        print("Foo 构造函数")
        pass


Foo()


# 2 析构函数
class Bar:
    def __del__(self):
        print("Bar 析构函数")


x = Bar()
del x


# 3 调用超类方法
class Bird:
    def __init__(self):
        self.hungry = True

    def eat(self):
        if self.hungry:
            print('Aaaah ...')
            self.hungry = False
        else:
            print('No, thanks!')


class SongBird(Bird):
    def __init__(self):
        # Bird.__init__(self) 调用未关联的超类构造函数
        # 等价
        super().__init__()  #
        self.sound = 'Squawk!'

    def sing(self):
        print(self.sound)


sb = SongBird()
sb.sing()
sb.eat()
